#include "myutils.h"
#include "QPainter"

MyUtils::MyUtils()
{

}

QString MyUtils::getNewName(QString path, QString value) {
    QDir dir(path);
    if (!dir.exists()) {
        qDebug() << "目录不存在,不能生成新文件名," << path;
        return NULL;
    }
    dir.setFilter(QDir::Dirs | QDir::Files);
    QStringList list = dir.entryList();
    int i = 1;
    QString newName;
    do {
        newName = QString().asprintf(value.toStdString().c_str(), i);
        i++;
    } while (list.contains(newName));

    return newName;
}

QString MyUtils::getNewFileName(QString path) {
    return getNewName(path, "未命名-%d");
}

QString MyUtils::getNewDirName(QString path) {
    return getNewName(path, "新建文件夹-%d");
}

void MyUtils::setItemTextColor(QListWidgetItem *item, QString colorName)
{
    item->setForeground(QBrush(QColor(colorName)));

    // 创建/获取红色图标
    if (colorName == "red") {
        // 方法1：使用系统标准图标（简单但可能不精确）
        // item->setIcon(QIcon::fromTheme("dialog-error", QIcon(":/icons/red_circle.png")));

        // 方法2：动态绘制红色圆形图标（推荐）
        QPixmap pixmap(16, 16);
        pixmap.fill(Qt::transparent);

        QPainter painter(&pixmap);
        painter.setRenderHint(QPainter::Antialiasing);
        painter.setPen(Qt::NoPen);
        painter.setBrush(QColor(255, 0, 0)); // 纯红色
        painter.drawEllipse(2, 2, 12, 12);  // 绘制红色圆形

        item->setIcon(QIcon(pixmap));
    } else {
        // 清除图标
        item->setIcon(QIcon());
    }
}

int MyUtils::getStringListIndexByValue(QStringList aList,QString value)
{
    // 遍历 aList2 查找匹配项的索引值
    int list1_row = -1;
    if(aList.isEmpty()==false) {
        for (int i = 0; i < aList.size(); ++i) {
            if (aList[i] == value) {
                list1_row = i;
                break;
            }
        }
    }
    return list1_row;
}
